const fs = require("fs");

// fs.readdir("./html", function (err, files) {
//     for (let i = 0; i < files.length; i++) {
//         let value = files[i];
//         fs.stat("./html/" + value, function (err1, stats) {
//             if (stats.isDirectory()) {
//                 console.log("目录：" + value);
//             }
//         });
//     }
//
//     files.forEach(function (value, index) {
//         fs.stat("./html/" + value, function (err1, stats) {
//             if (stats.isDirectory()){
//                 console.log("目录：" + value);
//             }
//         });
//     });
//
//     for (let index in files) {
//         let value = files[index];
//         fs.stat("./html/" + value, function (err1, stats) {
//             if (stats.isDirectory()) {
//                 console.log("目录：" + value);
//             }
//         });
//     }
//
//     for (let value of files) {
//         fs.stat("./html/" + value, function (err1, stats) {
//             if (stats.isDirectory()) {
//                 console.log("目录：" + value);
//             }
//         });
//     }
// });

//错误写法，因为fs.stat是异步方法，而var i定义不是块级变量，所以打印undefined
// fs.readdir('./html', function (err, files) {
//     for (var i = 0; i < files.length; i++) {
//         fs.stat("./html/" + files[i], function (err, stats) {
//             if (stats.isDirectory()) {
//                 console.log(files[i]);
//             }
//         });
//     }
// });
//正确写法，方案一将var改为let，方案二如下
let filesArr = [];
fs.readdir('./html', function (err, files) {
    (function getFile(i) {
        if(i === files.length){
            console.log("目录：" + filesArr);
            return false;
        }

        fs.stat("./html/" + files[i], function (err1, stats) {
            if (stats.isDirectory()) {
                filesArr.push(files[i]);
            }
            getFile(++i);
        });
    })(0);
});